/*
 *  Move.h
 *
 *	Class that keeps track of info for a single move
 */

#ifndef MOVE_H_
#define MOVE_H_
#include "Piece.h"
#include <iostream>

using namespace std;

class Move{
private:
	Position src,dst;		//start and finish Positions of a move
	Piece *moved,*captured;	//Piece moved and potentially a captured piece
public:
	Move(Position& _src,Position& _dst, Piece *_moved,Piece *_captured);	//Constructor
	Move(const Move &other);	//Copy Constructor
	~Move();					//Deconstructor
	Position getSource();		//Returns start position
	Position getDest();			//Returns finish position
	Piece*	getMovedPiece();	//Returns Piece that was moved
	Piece*	getCapturedPiece();	//Returns captured Piece
	//friend ostream operator<<(ostream& stream,const Move &other);	//ofstream overloaded method, produces XML text
};

#endif /* MOVE_H_ */
